package com.store.vo;

import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单视图对象
 */
@Data
public class OrderVO {
    
    /**
     * 订单ID
     */
    private Long id;
    
    /**
     * 订单号
     */
    private String orderNo;
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 处理员工ID
     */
    private Long employeeId;
    
    /**
     * 员工姓名
     */
    private String employeeName;
    
    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;
    
    /**
     * 支付方式
     */
    private String paymentMethod;
    
    /**
     * 支付方式显示名称
     */
    private String paymentMethodName;
    
    /**
     * 订单状态
     */
    private String status;
    
    /**
     * 订单状态显示名称
     */
    private String statusName;
    
    /**
     * 收货地址
     */
    private String address;
    
    /**
     * 联系电话
     */
    private String phone;
    
    /**
     * 备注
     */
    private String remark;
    
    /**
     * 支付时间
     */
    private LocalDateTime payTime;
    
    /**
     * 发货时间
     */
    private LocalDateTime shipTime;
    
    /**
     * 完成时间
     */
    private LocalDateTime completeTime;
    
    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    
    /**
     * 订单明细
     */
    private List<OrderItemVO> items;
    
    /**
     * 获取支付方式显示名称
     */
    public String getPaymentMethodName() {
        if (paymentMethod == null) return "";
        switch (paymentMethod) {
            case "cash": return "现金";
            case "alipay": return "支付宝";
            case "wechat": return "微信支付";
            default: return paymentMethod;
        }
    }
    
    /**
     * 获取状态显示名称
     */
    public String getStatusName() {
        if (status == null) return "";
        switch (status) {
            case "unpaid": return "待支付";
            case "paid": return "已支付";
            case "shipped": return "已发货";
            case "completed": return "已完成";
            case "cancelled": return "已取消";
            case "refunded": return "已退款";
            default: return status;
        }
    }
}


